home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d26 / biomrf.arc / BIO.DOC next >
Text File  |  1988-11-09  |  9KB  |  169 lines

  1.                                ╔═══════════╗
  2.                                ║ BIOMURFFS ║
  3.                                ╚═══════════╝
  4.  
  5. The program is designed to demonstrate how a succession of small changes, when
  6. stacked on  top of one another, can lead to radical  differences in the system
  7. affected. This is used by Richard Dawkins in 'The  Blind  Watchmaker' where he
  8. uses it to demonstrate the principle of cumulative small change as a mechanism
  9. for Darwinian  evolution. There are  one or two  differences between  Dawkin's
  10. program  and  this, but these  are relatively  minor  ones connected  with the
  11. operation and not the overall effect.
  12.  
  13.                           ┌─────────────────────┐
  14.                           │ SYSTEM REQUIREMENTS │
  15.                           └─────────────────────┘
  16. The program is  written in TURBO BASIC V1.0.  It needs an IBM PC or compatible
  17. with CGA or EGA graphics. The memory  requirements I don't  exactly know about
  18. since the  smallest system I've  run it on is 512K. The program  loads the DOS
  19. utility  GRAPHICS.COM to  allow screen  printing, but this  is called  with no
  20. parameters, so it  is set  up  for IBM GRAPHICS / EPSON  compatible  printers.
  21. The CGA high resolution  graphics mode is used for  plotting the biomorphs, so
  22. you don't need a colour monitor. Anyone who wants to write in genes for colour
  23. on an EGA is welcome to do so.
  24.  
  25.                               ┌────────────────┐
  26.                               │ USER INTERFACE │
  27.                               └────────────────┘
  28. Run the program from DOS by entering  BIOMRF  from the DOS prompt and pressing
  29. the RETURN key. The screen will clear and the title page  printed. At the foot
  30. of this you are asked:
  31.  
  32. Do you want to define the initial gene values yourself ?
  33.  
  34. answering Y will allow user definition of the intial values - see later.
  35. Answering N will cause the screen to clear again and the following to be shown
  36.  
  37. The default initial values are:
  38. 6,2,8,1,2,135,90,10
  39.  
  40. Do you want these or a random selection ?
  41.  
  42. See the section on genes for what  this means. If you want the default values,
  43. just press the  RETURN key, if not, the starting  values will be  generated at
  44. random, and you will be  shown what they are. You are then  told that to leave
  45. the program, just press the RETURN key in response to the question:
  46.  
  47. Please enter the number of the biomorph you want ?
  48.  
  49.                         ┌──────────────────────────┐
  50.                         │ DISPLAYING THE BIOMORPHS │
  51.                         └──────────────────────────┘
  52. The messages here  are pretty self-explanatory, with the 'Do you want' type as
  53. Y/N replies and the others requiring numeric answers. However:
  54. 1. Notice that the morphs are plotted  1  2  3  4  5  6  7  8
  55.                                        9 10 11 12 13 14 15 16
  56. but  there may be  fewer than 16 there. You can only  select morphs  which are
  57. actually shown. If you try to  select number 8  when there are  only 6 plotted
  58. you'll get nonsense. They are plotted staggered for clarity.
  59.  
  60. 2. When you enter  the magnification, values MUST  be positive. Magnifications
  61. less than 1 reduce  the size of the morph. As the morphs have a  limited range
  62. of sizes and  the screen has a limited size, you're best using  magnifications
  63. of between 0.5 and 3. The gene values are plotted  to the side of the morph if
  64. you ask to see it alone.
  65.  
  66. 3. If you press RETURN on it's own to the question:
  67.  
  68. 'Please enter the number of the biomorph you want ?'
  69.  
  70. you will leave the program.
  71.  
  72.                             ┌───────────────────┐
  73.                             │ BIOMORPH GENETICS │
  74.                             └───────────────────┘
  75. OK, this is where we see how it's all done. In natural systems, genes are just
  76. data storage media which, via the mechanisms of transcription affect (directly
  77. or otherwise) visible properties (or phenotypes) of the organisms, WITHOUT any
  78. obvious connection between the gene and the phenotype (i.e unless you know the
  79. system you don't  know what one set of data in a particular  gene will do just
  80. by looking at it). This is what  happens here, but the system for turning gene
  81. data into phenotypes is simple enough to do on paper.
  82. Mutation is alteration of genetic data resulting in an altered phenotype. With
  83. natural mutation, very often  the most obvious  phenotype is death, but enough
  84. non-fatal  mutations go on (especially  with the added  source of variety from
  85. sexual reproduction)  to allow development. Biomorphs  do not die, nor do they
  86. reproduce sexually, so in order to get evolution fast enough to see, they have
  87. a huge mutation rate - every one is mutated. However, each mutation is in only
  88. one gene, and it is only a  +/- 1 change in the  value of that gene. Since all
  89. these small changes are cumulative, a lot of development can be seen.
  90.  
  91.  
  92.  
  93.  
  94. I've just  mentioned what  biomorph mutation  is physically, so to put it into
  95. perspective, it must also be said here that biomorph  genes are all members of
  96. the set of natural numbers. These are thus data (in the same way as the 4- way
  97. 'numeric' code of DNA  is data) which are  read by the relevant section of the
  98. program as an instruction as to how to do it's job. The main difference (other
  99. than one of scale) between biomorphs and living organisms is that in biomorphs
  100. the phenotypes are produced directly from the code.
  101.  
  102. Each biomorph  has 8 genes of  this type. As has  been said, one is mutated at
  103. each reproduction, but which one is  chosen at random, and the mutation, +/- 1
  104. is also decided at random. The non-random influence here which can lead to the
  105. development of particular phenotypes is human selection. The genes are:
  106.  
  107. 1: Number of offspring.
  108. 2: Number of iterations used when plotting (see PLOTTING BIOMORPHS)
  109. 3: GENE # 1 for branch length
  110. 4: GENE # 2 for branch length
  111. 5: GENE # 3 for branch length - if odd, branch length is 3 * 4, if even branch
  112.    length is 3 + 4.
  113. 6: Angle of 1st branch from precursor (in degrees).
  114. 7: Angle of 2nd branch from 1st (2 branches come from each branch point).
  115. 8: Length of initial branch (trunk).
  116.  
  117.  
  118.                             ┌────────────────────┐
  119.                             │ PLOTTING BIOMORPHS │
  120.                             └────────────────────┘
  121. Biomorphs have  a plane of  symmetry running down  the middle. This both looks
  122. nicer  and is easier  to do as it needs  less data. They are  actually 'trees'
  123. with a trunk  and two branches coming from each branch point. They are plotted
  124. as a series of vectors, so the data needed  to plot each one  are co-ordinates
  125. of the start position, the length & the angle of  the vector from the external
  126. vertical/horizontal x/y co-ordinate system of the screen. As there are two new
  127. branches coming  from each old one, at every iteration after the  first two an
  128. additional 2^(iteration) vectors are generated (remember that only half of the
  129. biomorph is actually  worked out, as the other  half is plotted  by reflecting
  130. each vector on this  side across the mirror plane), so it is easy to calculate
  131. where each new vector came from. (The file BIOPLOT.BAS contains the subroutine
  132. which does this). Once the vector  is calculated, it can be plotted along with
  133. it's mirror image, and the subroutine for this is in the file VTRPLOT.BAS.
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140. The vector is calculated by finding it's start co-ordinates, which are the end
  141. of the parent vector. The length of the  new vector is found  by combining the
  142. values of genes 3 & 4  in the way indicated by gene 5. This is then stored and
  143. it's angle is found from  the angle of the parent  branch and  gene 6 (for the
  144. first branch  from a given branch point, or from the angle of the first branch
  145. and gene 7 for the second.
  146.  
  147. This process is repeated for the number of iterations given by gene 2, and the
  148. biomorph  thus drawn. The same is done for each  biomorph in the set. When you
  149. ask  for  a single  biomorph  to  be  plotted, this  again  happens, the  only
  150. difference being that  the length of the vector is multiplied  by the value of
  151. the magnification given.
  152.  
  153. Biomorphs  can also be  plotted  onto  the  printer  at any  time by  pressing
  154.  
  155. PrtSc.
  156.  
  157.  
  158. I am  currently  writing version  2.0 of this program, which will  include two
  159. competing  species  and a definable  environment. If you  want a copy of this,
  160. once it is  finished, including  source code, or if  you just  want a chat, my
  161. email address is:
  162.  
  163. D.Murphy@uk.ac.edinburgh
  164.  
  165.  
  166.   ╒═══════════════════════════════╕
  167.   │  D.J. Murphy, 12th May 1988   │
  168.   ╘═══════════════════════════════╛
  169.